23131
11983
Dette spørsmålet har allerede svar her:
Hvordan returnerer jeg svaret fra et asynkront anrop?
(42 svar)
Stengt for 5 måneder siden.
Så når du kjører følgende kode, er responsen til console.log (ba) udefinert
Men når jeg prøver dette i Chrome V8-konsollen, får jeg riktig utgang jeg forventer. Jeg er ikke helt sikker på hva som skjer her.
la ba;
funksjon Setqa () {
(asynkronisering () => {
venter på henting ('spørsmål.json')
.then (res => res.json ())
.then (async (data) => {
ba = venter på data;
});
}) ();
}
Setqa ();
console.log (ba);
Innholdet i json-filen er følgende:
"spørsmål": [{
"questionType": "multiple",
"spørsmål": "Hvordan er været",
"svar": "",
"spørsmål svar": ""
},
{
"questionType": "multiple",
"spørsmål": "Hvordan har du det i dag?",
"svar": " 1",
"questionAnswer": "textPurpose1"
}
] 
Jeg antar at det skal fungere
la ba;
funksjon Setqa () {
returner henting ('spørsmål.json')
.then (res => res.json ())
.then (async (data) => {
ba = venter på data;
});
}
Setqa (). Deretter (() => console.log (ba));
Men en bedre tilnærming ville være
asynkroniseringsfunksjon setQa () {
const res = await fetch ('spørsmål.json');
retur res.json ();
}
la ba = avvente setQa ();
|
Er ikke svaret du leter etter? Bla gjennom andre spørsmål merket javascript json fetch console.log eller still ditt eget spørsmål.